#!/bin/bash
#

#检测进程的脚本，判断是否启动，否，输出没有启动；是，输出启动时间: xxxxxx PID: xxxxx 进程名称: xxxxx 端口: xxxxx
#read -p "输入要查询的服务名称：" service
##不能用systemctl status来查看服务是否启动，因为像nginx服务，是源码编译的，不能用systemctl命令，是直接路径启动的，因此要通过查看进程的方式判断服务是否运行

#ps -elf | grep $service | grep -v "grep" &> /dev/null
#num=$(echo $?)
##echo $num
#pid=$(ps -elf | grep "$service" | grep -v "grep" | awk '{print $4}')
#port=$(netstat -tunlp | grep "$service" | awk '{print $4}' | awk -F: '{print $NF}')
#if [ $num -ne 0 ]; then
#    echo "该服务未运行"
#else
#    echo "服务名称：${service}"
#    echo "PID为：${pid}"
#    echo "端口为：${port}"
#fi

##其他方法，pid可以用pidof命令获得
read -p "服务名称：" service
if ps -elf | grep "$service" | grep -v "grep" &> /dev/null; then
    proc_id=$(pidof $service)
    port=$(netstat -tunlp | grep "$service" | awk '{print $4}' | awk -F: '{print $NF}')
    start_time=$(ps -p $proc_id -o lstart=)
    echo "启动时间：${start_time}"
    echo "服务名称：${service}"
    echo "PID为：${proc_id}"
    echo "端口为：${port}"
else
    echo "服务$service未运行"
fi 
